package com.medord.machine.core.aspect;

import com.medord.machine.core.FlowParameter;
import com.medord.machine.core.entity.ICurrentStateDto;

/**切面父类，定义2个方法：
 * 1、needExecute：是否执行
 * 2、needThrowException：是否抛出异常回滚事务
 * 并继承自FlowParameter
 * 让其子类可以在审批过程中获取，设置参数，并添加返回数据
 * @author 孙丰佳
 * @version V1.0
 * @Title: BaseCheckHandler
 * @Package com.medord.machine.core.aspect
 * @Description: (用一句话描述该文件做什么)
 * @date 2021-09-17 10:11
 **/
public abstract class BaseFlowHandler extends FlowParameter implements IBaseHandler {

    /**
    * needExecute 对于实体的不同情况，可能有的需要执行该切面，有的不执行，作为标识
    * @param iCurrentStateDto
    * @return boolean true：执行该hander
    * @author 孙丰佳
    * @time 2021-11-10 16:08
    */
    public boolean needExecute(ICurrentStateDto iCurrentStateDto) {
        return true;
    }

    /**
    * needThrowException handler中，有时需要抛异常回滚事务，有时不需要，在这里做个控制
    * @param
    * @return boolean true抛异常
    * @author 孙丰佳
    * @time 2021-11-10 16:09
    */
    public boolean needThrowException(){return true;}

}
